package com.lantu.image;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

/**
 * 通过base64字串上传图片
 */
import sun.misc.BASE64Decoder;
public class UploadTool {
	 /**
     * 上传图片
     * @param base64 图片编码后的字符串
     * @return 上传成功后的文件名
     */
    public static String upload(String base64) {
        HttpServletRequest request = ServletActionContext.getRequest();
        //upload是图片上传路径
        if(base64.indexOf("jpeg") != -1) {
            //base64字串中有jpeg字串，这是一个4个字的，而我这里是把base64字串的指定位置的字串来作为上传
            //文件类型的判断依据，所以在大部分都是三个字的文件类型下就得把jpeg改成jpg了
            base64 = base64.replaceFirst("jpeg", "jpg");
        }
        //生成一个唯一的文件名
        System.out.println(base64.substring(0, 40));
        String fileName = "icon_"+UUID.randomUUID().toString()+System.currentTimeMillis()+"."+base64.substring(11, 14);
        Img2Base64Util.generateImage(base64, "d:\\test\\"+fileName);
        return fileName;
    }
}
